[[swizzle]] T x, y, z, w;

[[swizzle]] vec<T, 2>
    &xx,
    &xy,
    &xz,
    &xw,
    &yx,
    &yy,
    &yz,
    &yw,
    &zx,
    &zy,
    &zz,
    &zw,
    &wx,
    &wy,
    &wz,
    &ww;

[[swizzle]] vec<T, 3>
    &xxx,
    &xxy,
    &xxz,
    &xxw,
    &xyx,
    &xyy,
    &xyz,
    &xyw,
    &xzx,
    &xzy,
    &xzz,
    &xzw,
    &xwx,
    &xwy,
    &xwz,
    &xww,
    &yxx,
    &yxy,
    &yxz,
    &yxw,
    &yyx,
    &yyy,
    &yyz,
    &yyw,
    &yzx,
    &yzy,
    &yzz,
    &yzw,
    &ywx,
    &ywy,
    &ywz,
    &yww,
    &zxx,
    &zxy,
    &zxz,
    &zxw,
    &zyx,
    &zyy,
    &zyz,
    &zyw,
    &zzx,
    &zzy,
    &zzz,
    &zzw,
    &zwx,
    &zwy,
    &zwz,
    &zww,
    &wxx,
    &wxy,
    &wxz,
    &wxw,
    &wyx,
    &wyy,
    &wyz,
    &wyw,
    &wzx,
    &wzy,
    &wzz,
    &wzw,
    &wwx,
    &wwy,
    &wwz,
    &www;

[[swizzle]] vec<T, 4>
    &xxxx,
    &xxxy,
    &xxxz,
    &xxxw,
    &xxyx,
    &xxyy,
    &xxyz,
    &xxyw,
    &xxzx,
    &xxzy,
    &xxzz,
    &xxzw,
    &xxwx,
    &xxwy,
    &xxwz,
    &xxww,
    &xyxx,
    &xyxy,
    &xyxz,
    &xyxw,
    &xyyx,
    &xyyy,
    &xyyz,
    &xyyw,
    &xyzx,
    &xyzy,
    &xyzz,
    &xyzw,
    &xywx,
    &xywy,
    &xywz,
    &xyww,
    &xzxx,
    &xzxy,
    &xzxz,
    &xzxw,
    &xzyx,
    &xzyy,
    &xzyz,
    &xzyw,
    &xzzx,
    &xzzy,
    &xzzz,
    &xzzw,
    &xzwx,
    &xzwy,
    &xzwz,
    &xzww,
    &xwxx,
    &xwxy,
    &xwxz,
    &xwxw,
    &xwyx,
    &xwyy,
    &xwyz,
    &xwyw,
    &xwzx,
    &xwzy,
    &xwzz,
    &xwzw,
    &xwwx,
    &xwwy,
    &xwwz,
    &xwww,
    &yxxx,
    &yxxy,
    &yxxz,
    &yxxw,
    &yxyx,
    &yxyy,
    &yxyz,
    &yxyw,
    &yxzx,
    &yxzy,
    &yxzz,
    &yxzw,
    &yxwx,
    &yxwy,
    &yxwz,
    &yxww,
    &yyxx,
    &yyxy,
    &yyxz,
    &yyxw,
    &yyyx,
    &yyyy,
    &yyyz,
    &yyyw,
    &yyzx,
    &yyzy,
    &yyzz,
    &yyzw,
    &yywx,
    &yywy,
    &yywz,
    &yyww,
    &yzxx,
    &yzxy,
    &yzxz,
    &yzxw,
    &yzyx,
    &yzyy,
    &yzyz,
    &yzyw,
    &yzzx,
    &yzzy,
    &yzzz,
    &yzzw,
    &yzwx,
    &yzwy,
    &yzwz,
    &yzww,
    &ywxx,
    &ywxy,
    &ywxz,
    &ywxw,
    &ywyx,
    &ywyy,
    &ywyz,
    &ywyw,
    &ywzx,
    &ywzy,
    &ywzz,
    &ywzw,
    &ywwx,
    &ywwy,
    &ywwz,
    &ywww,
    &zxxx,
    &zxxy,
    &zxxz,
    &zxxw,
    &zxyx,
    &zxyy,
    &zxyz,
    &zxyw,
    &zxzx,
    &zxzy,
    &zxzz,
    &zxzw,
    &zxwx,
    &zxwy,
    &zxwz,
    &zxww,
    &zyxx,
    &zyxy,
    &zyxz,
    &zyxw,
    &zyyx,
    &zyyy,
    &zyyz,
    &zyyw,
    &zyzx,
    &zyzy,
    &zyzz,
    &zyzw,
    &zywx,
    &zywy,
    &zywz,
    &zyww,
    &zzxx,
    &zzxy,
    &zzxz,
    &zzxw,
    &zzyx,
    &zzyy,
    &zzyz,
    &zzyw,
    &zzzx,
    &zzzy,
    &zzzz,
    &zzzw,
    &zzwx,
    &zzwy,
    &zzwz,
    &zzww,
    &zwxx,
    &zwxy,
    &zwxz,
    &zwxw,
    &zwyx,
    &zwyy,
    &zwyz,
    &zwyw,
    &zwzx,
    &zwzy,
    &zwzz,
    &zwzw,
    &zwwx,
    &zwwy,
    &zwwz,
    &zwww,
    &wxxx,
    &wxxy,
    &wxxz,
    &wxxw,
    &wxyx,
    &wxyy,
    &wxyz,
    &wxyw,
    &wxzx,
    &wxzy,
    &wxzz,
    &wxzw,
    &wxwx,
    &wxwy,
    &wxwz,
    &wxww,
    &wyxx,
    &wyxy,
    &wyxz,
    &wyxw,
    &wyyx,
    &wyyy,
    &wyyz,
    &wyyw,
    &wyzx,
    &wyzy,
    &wyzz,
    &wyzw,
    &wywx,
    &wywy,
    &wywz,
    &wyww,
    &wzxx,
    &wzxy,
    &wzxz,
    &wzxw,
    &wzyx,
    &wzyy,
    &wzyz,
    &wzyw,
    &wzzx,
    &wzzy,
    &wzzz,
    &wzzw,
    &wzwx,
    &wzwy,
    &wzwz,
    &wzww,
    &wwxx,
    &wwxy,
    &wwxz,
    &wwxw,
    &wwyx,
    &wwyy,
    &wwyz,
    &wwyw,
    &wwzx,
    &wwzy,
    &wwzz,
    &wwzw,
    &wwwx,
    &wwwy,
    &wwwz,
    &wwww;